package br.com.fotoxbh.geracao;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

import javax.imageio.ImageIO;

import com.fotoloka.util.ParamUtil;


/**
 * Classe para adicionar o link do facebook da foto-x no rodapé
 * 
 * 
 * @author Pablo
 *
 */
public class ManipularFotos {
	
	private static final String diretorioPadrao = ParamUtil.getDiretorioPadrao(); //C:\Users\Pablo\Dropbox\Foto-X\FOTOS\Luiza
	
	private static File dir = new File(diretorioPadrao);
	
	private static File dirFotoComLogo = new File(
			diretorioPadrao + "\\");
	
	private static File dirFotoFormatada = new File(
			diretorioPadrao + "\\Formatadas");
	
	

	public static void extrairFormatadas() throws IOException {
		for (String dirsSecao : dir.list()) {
			if (dirsSecao.startsWith("secao")) {
				File dirSecao = new File(dir, dirsSecao);
				if(dirSecao.isDirectory()) {
					for (String nomefotoArquivo : dirSecao.list()) {
						File fotoArquivo = new File(dirSecao, nomefotoArquivo);
						if (fotoArquivo.getName().startsWith("secao")) {
							File destino = new File(dirFotoFormatada, fotoArquivo.getName());
							Path source = FileSystems.getDefault().getPath(fotoArquivo.getAbsolutePath());
							Path target = FileSystems.getDefault().getPath(destino.getAbsolutePath());
							Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
						}
					}
				}
			}
		}
		
	}
	
	public static void main(String[] args) throws IOException {
		
		extrairFormatadas();
		
		exportarComMarca();
	}

	public static void exportarComMarca() throws IOException {
		File logoColorida = new File("c:\\fotos\\logo_pequena.png");
		
		BufferedImage logo = ImageIO.read(logoColorida);
		
		for (String dirsSecao : dir.list()) {
			if (dirsSecao.startsWith("secao")) {
				File dirSecao = new File(dir, dirsSecao);
				if(dirSecao.isDirectory()) {
					for (String nomefotoArquivo : dirSecao.list()) {
						File fotoArquivo = new File(dirSecao, nomefotoArquivo);
						String nomeFoto = fotoArquivo.getName();
						if (fotoArquivo.getName().startsWith("foto")) {
							File finalImage = new File(dirFotoComLogo,dirSecao.getName() + "_" + nomeFoto);
							BufferedImage imgFoto = ImageIO.read(fotoArquivo);
							Graphics2D createGraphics = imgFoto.createGraphics();
							createGraphics.setColor(new Color(242, 145,55));
							createGraphics.setFont(new Font("Arial", Font.BOLD, 12));
							createGraphics.drawImage(logo, 720, 385, 85, 64, null);
							//createGraphics.drawString("Foto-X", 650, 410);
							//createGraphics.drawString("www.facebook.com/fotoxbh", 600, 425);
							//imgFoto.createGraphics().drawString("www.facebook.com/fotoxbh", 475, 450); //usar para fotos tiradas na resolução 640x480
							ImageIO.write(imgFoto, "jpeg", finalImage);
							System.out.println("Gerada: " + finalImage.getName());
						}
					}
					
				}
			}
		}
	}
}
